{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Penalised Regression\n",
    "\n",
    "## YouTube Videos\n",
    "1. **Scikit Learn Linear Regression:** https://www.youtube.com/watch?v=EvnpoUTXA0E\n",
    "2. **Scikit Learn Linear Penalise Regression:** https://www.youtube.com/watch?v=RhsEAyDBkTQ\n",
    "\n",
    "## Introduction\n",
    "We often do not want the coefficients/ weights to be too large. Hence we append the loss function with a penalty function to discourage large values of $w$.\n",
    "\n",
    "\\begin{align}\n",
    "\\mathcal{L} & = \\sum_{i=1}^N (y_i-f(x_i|w,b))^2 + \\alpha \\sum_{j=1}^D w_j^2 + \\beta \\sum_{j=1}^D |w_j|\n",
    "\\end{align}\n",
    "where, $f(x_i|w,b) = wx_i+b$. The values of $\\alpha$ and $\\beta$ are positive (or zero), with higher values enforcing the weights to be closer to zero.\n",
    "\n",
    "## Lesson Structure\n",
    "1. The task of this lesson is to infer the weights given the data (observations, $y$ and inputs $x$).\n",
    "2. We will be using the module `sklearn.linear_model`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/jpeg": "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\nAAAAAAf/2Q==\n",
      "text/html": [
       "\n",
       "        <iframe\n",
       "            width=\"400\"\n",
       "            height=\"300\"\n",
       "            src=\"https://www.youtube.com/embed/EvnpoUTXA0E\"\n",
       "            frameborder=\"0\"\n",
       "            allowfullscreen\n",
       "        ></iframe>\n",
       "        "
      ],
      "text/plain": [
       "<IPython.lib.display.YouTubeVideo at 0x10612b438>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import YouTubeVideo\n",
    "YouTubeVideo(\"EvnpoUTXA0E\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz\nODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2Nj\nY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIAWgB4AMBIgACEQED\nEQH/xAAbAAEAAQUBAAAAAAAAAAAAAAAAAQIDBAUGB//EAEoQAAEDAgMDCgUBBQYDBgcAAAEAAgME\nEQUSIRMxUQYUFyJBVGGRktIyUnGBoRUjQrHB0QckM2JyohaC8DRDU1Xh8TU3VnOTlMP/xAAWAQEB\nAQAAAAAAAAAAAAAAAAAAAQL/xAAaEQEBAQADAQAAAAAAAAAAAAAAARICEVEx/9oADAMBAAIRAxEA\nPwDz9ERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBE\nRAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQE\nREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREHXdHeL94ofW/2p0d4v3ih9b/\nAGr1DKOATKOAQeX9HeL94ovW/wBqdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v8A\navUMreATK3gEHl/R1i3eqH1v9qdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v9q9Q\nyt4BMreAQeX9HWLd6ofW/wBqdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v8AavUM\nreATK3gEHl/R1i3eqH1v9qdHWLd6ofW/2r1DK3gEyt4BB5f0d4t3qh9b/anR1i3eqH1v9q9Qyt4B\nMreAQeX9HWLd6ofW/wBqdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v8AavUMreAT\nK3gEHl/R1i3eqH1v9qdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v9q9Qyt4BMreA\nQeX9HWLd6ofW/wBqdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v8AavUMreATK3gE\nHl/R1i3eqH1v9qdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v9q9Qyt4BMreAQeX9\nHWLd6ofW/wBqdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v8AavUMreATK3gEHl/R\n1i3eqH1v9qdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v9q9Qyt4BMreAQeX9HWLd\n6ofW/wBqdHWLd6ofW/2r1DK3gEyt4BB5f0dYt3qh9b/anR1i3eqH1v8AavUMreATK3gEHl/R1i3e\nqH1v9qdHWLd6ofW/2r1DK3gEyt4BB5f0d4v3mh9b/anR3i/eKH1v9q9Qyt4BMo4BB5f0d4v3ih9b\n/anR3i/eKH1v9q9QyjgEyjgEHl/R3i/eKH1v9qdHeL94ofW/2r1DKOATKOAQeX9HeL94ofW/2p0d\n4v3ih9b/AGr1DKOATKOAQeX9HeL94ofW/wBqdHeL94ofW/2r1DKOATKOAQeX9HeL94ofW/2p0d4v\n3ih9b/avUMo4BMo4BBUiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIC\nIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICKFKAiI\ngIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiDhcBr5Krl\n/XMbVPlpsr3MaHks/d3di7leeclaSKh5f11LB/hRMe1ut7C4XoiDzIQYjjPK+voIcUnpmsc9ws5x\nAAI0tfxV3GsKxzk1StxBmNyzhrwCCXDf4Em6xYqfEqnlviLMIqWU9RmeS9+7LcabinKmkx+jhp34\n5VirpDIBljfbXhuHZdB32HYxFNyfp8TrHtga+MOeXGwBWHT8tMCqKgQsqy1zjYF7C1p+5XM8u6hv\n6Ng0FG0spZWZ2s+gFh+VGK0VbXYU2jg5KOpnstkla8Ejj2a3Qd/V1lPRUrqmplbHC0XLidFqIOWW\nBztlc2syiMZjmYRceGmq43lPJXMwHA6GvD4nWftA7f1SAL/YroOVPJ/C6fkrK+CmjifTtaWSNGp1\nA1Pbe6Df/r2HfpP6ptzzO9tpkdxtutferUfKXCpamlp4qnPLVAGNrWnd48PuuQP/AMpx/wDc/wD6\nracjsDoYsAp8UdAJKwtdIJCT1bEgW8kG5xPlThGFT7Cqqf2o3sY0uLfrbcszDMWosWgM1DO2Vo0I\n3Fv1HYvNuSslQ+Wrq/0U4tI91nPc4dUnfoR2rccl8OxKk5UTVH6bLQ0c7XAsLrtb2j8oOixDldg2\nHVLqeepJlb8QjYXZfrZZ+GYrRYtAZqGdsrRoewt+oXn0VLi/Jmuq5JcIjr4ZXXMhbnuL7wezyW55\nFVOEVU1YMPp5aOrkZeSNz8zbX3j6EoNvXcsMFoKl1PLVF0jTZ2zYXAH6rYUWJ0eK0Tp6KobJHYgk\nb2m3aF57SwYtyXlqRU4NHXQyOuZC3NcfXWy3vIqowiaGt/TYJqaYtvLE9+YdtiEGTyH2QhrNliz8\nR6zblzHNyb9Ossyv5YYLh9S6nlqS6Rps4RsLrfdcnyNnkpeTOPzwm0jGAtPA5Tqtj/Z7hdFUYRNV\nVEMc80kpaTIM1hYaIOswzFqLFoDNQztlaNCNxb9QsJ/KrBWc4zVgBpzlkBa4G97WGmu7sXL4FG3D\nP7Raqio9KdwcCwbhpm/BVrknh9NXcr8VdVRNlEL5C1rhcXL96DscJ5R4XjEjo6KozSNF8jmlpt99\n62y87dTQ0P8AafTx0rBEx2pa3QasN16IgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiI\nCIiAiIgIiICIiAiIgIiIOR5PclKrCMflrpaps8b2Obc3zEmxuV1qlEHMYVycqaHlTV4rJLG6KcOs\n0XuLkf0WVytwSXHcNjpoJGRvZIH3fu3H+q3qIOar+S5xPk5SUFRI2OppmgMkZqLgW8itY7AeVdZF\nHR1eJxMpWEXew9cgfQBdwiDlOU2EYW7BKairK4Uz4v8ABmmNyT2343XP4xhWIwcnXvxHG2z0sbRs\nImG+c6W+ui77FMLpMWpeb1sQkZe41sQeIK0cfIHB2SBzzUSNbuY6TRBhYVhM+K/2dQ0MbmxySuzA\nv3Wz3XSYDh8mGYLTUUzmvfE0glu46krOhijghZFEwMjYMrWtFgAriDinclsXwivmn5O1cTIZjrFL\n2fhbDk/yerKSaerxatfU1EwIyBxyNvvXSog4in5O8ocEqJhgtZA+nlN8s28LN5P8lpqSetrMUmZN\nU1bXMeIxYAO3rqkQcRScnuUmCPmjwisp5KaR2YCbePxvWx5M8mpsKdV1VZO2Wrqgc2UWa3t/iumR\nBzHJTk1Lg9JW09a+OZlTYENvusQQfNayPkxygwaeZuBV0XNpTfLJvH4Oq7pEHM8l+TEmFVM1fXzi\norpr3cNzb79e0lTyd5O1OE41iFbNLG9lUXFobe4u666VEHM1HJ2pl5ZQ4yJYxDGACzXN8JH810yI\ngIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICKkPY6+V7Tbf\nY7lG0ZrZzdNTruQVorFJVRVdMyohN43i4JVhmK08hhyEkTSPjB4Ft738kGcipzty5swy8b6KQ4OF\n2kEcQglFSXtDg0uAJ3C6F7Q7KXDMey+qCpFSXtDg0uAJ3C+9a2txqGjmnY6J72wR55HNIsL3sN+p\n0QbRFjUtU6cOL4Hw2APWIP8AAquScNDCxpkD3ht2kaeKC8ipztzZcwzcL6pnbe2YXPZdBUix4ayG\neSdjHawPyPv2GwP81VUVMcFLJUE5mMaXdXW6C8ipa67Wk9UnsKZm66jTfqgqRU525suYZuF9VRHM\nHte5zTGGuLesRrbtQXUWNUVkdO+BrtdtJswR2GxOvkpqayCmiZJI8ZXvawEa6k2CDIRU525g3MMx\n7LqzV1cVHG2SZ1mue2MfVxAH5KDIRU52ggFwudwvvVqsqW0dLJUPBLWC5A3oL6Klr2vHVcDxsUa9\nrr5XA232KCpFYfVxMq46Vzv2sjXOaPAWv/EK6HtLi0OBI3i6CpFTnaXZQ4Zh2X1Vmoqm08kDHAkz\nybNtuw2J/kgyEVOdubLmGbhfVM7bkZhca70FSKlr2u+FwP0KNc14u1wcPAoKkVErxHG55Fw0ErGk\nxGKPCv1AtdstmJLdtkGYio2jerdwBduBKlz2N+JwH1KCpFS57WfE4C/Eo57W2zOAvuuUFSKCQBcm\nwS4va4uglFSXsFrubru13qUEoqQ9jr5XNNt9juQPa4kBwJG8AoKkVIe0mwcCd9gUztLsuYZuF9UF\nSKnOzNlzC57LqzV1cdJC6R+trdUHXU2QZCKxV1UVHTmeY2YCB5mw/iqYqyKSeaK9jEQCSdDcX0QZ\nKKlz2ttmcBfdcqmeUQQSSuBLY2lxA8AguIrUVRHLBFLcNErQ5ocbbxdVue1tszgL7rlBUipL2tID\nnAE7gTvVurqY6OllqZTaOJpe76BBy0GQV7NgacsdRytPNoyG3sLAu7Tv8Vl0dDBCzBnMhAdLCWym\n2rwY7nNx14ro0Qank02D9EhjiY1uUFsjQ21ndt1qqOkpZRQ0+xbZlbNtGZba2fa4+ll1aIOSqoXx\nbSKMNjoo8QOdrmFzGtMYIuBbq5itpyfaAat0cjHwukGXZxlkd7a5bk3+2l1uUQc5PzJtTXjEInSV\nTpQYWtHXc2wy5D9Vj1Ag5tXMmYTizpnGHQ7Qm/ULTwtbdpvXVog4+tY8z4g2rlhZUPf+yzQudIRY\nZdmbjt4dquYpQxOixZ76dj5dhEcxYLl2tyusRBzdfEGTVbBG4UzZINo1g/cG/d2cfBS80Tp4Th0Z\nEfPIsz2f4bjZ3w/zXRog42njkLo2yzRNr+c3cBATNfNxv8Nu3dZZUlHFzCrqdl/eBXktkt1h+1G4\n9gXUIg5WeKlY/FY3fsXmrY8uEWYZcrdXDtbe91XROEzeZsjiyS1TSZKe4jeGgOJAO7cAbaarp0sg\n1+NsPMDOwEvpntnAaLk5Tcj7i4WipY6h9ZFA9khZiTxVyE/uBpJynyjFvqutRBx0cbi8NlmjZXc6\nuQIHGb4+Ob4bfayyyGCZj6xt6JtXNnu0lod+6SOG/wDC6ZY9XSCqyHaywvjN2vjdY/0KDmKaGmqX\n7OOImmOKmzHNI02Q7OF1drqWCJlawwtFPFWwPy5btaOrmIHDfddHR0cdHE5kZc4ucXve83c5x7Sr\n6Dk6gwx4i+SIRTvNQxwhewtl7LFjhvbbXhvW15TRxvw2N0rA9kdTC5123s3aNufK626IOVquZ7HE\nW1DC6te4mnsDnIyjJs//AE7VtccDjybqGzBznbIZw3ed19y2qIOUq2iR0/6C2wFDI2TZC3XuMo/1\nWzeKv4O2M4nA6mlhLWxESNggLRbSweSd9/vvXSIg0eLRsGN0kpY0SOp5WRvLf3+rlF/NYVKKYtwx\ntEwjEGPG30s4Cxz5/vx8F1KIOSpRFzPD2RNIxhszNubdcG/7QuPC1/DdZbzFb85w0gE2qb6f6HLY\nog46ORjpaOWNsMcnOhmY1jnSsuTfO87lfFEwYVJUbAuc6tdtyB1jEJTccbWG7guqVmqpm1UJic57\nNQQ5jrEEG4IKDlqnYyS4n+ktLWGCHNkYQCMxzZRpfTgs3CXQxYhLPFPCYGQXk5vCWs36X1PWtfdq\ntxSULKWSSUySTTSWDpJCCSBuGmgCykFioe2Sgkew3a6IkHiLLnZ8PI5JbTnNUTzZpyF+m4aWXUog\n5LEGf36u55JCzMxuw2sLnuLcv7hBGt77tVlx0MdRVVPPI9s9tHELyN7bOubdhXRIg5WldBeCTGBm\nidQRCIyi4za5x/q+FWp2t5y81JZDAaaMU7ayJ0jrWNwNfivbx3Lr0Qa+npXVGAMpqhz3OfBkc54s\n7dvI4rndvWvDcQySNmnHMC0C4a6wGa3APzarskQcjWU7YK2rhqXwMjbGxtPtYXPJYGj4CCNb38Vv\nXukh5PEytlnkbT9YfC95y+G4rYog5CnLBiMDoDT5DSSh3NoyGg2bYFxOp3q9h3NX/pH6a20rW3qC\nAQQzIb5/+bKunkYJI3MO5wINlTDC2CnZCy+VjQ0X32CDlMI5q+gwgUI/vzS0yEA5g23WzHhw+yih\njdnpWumibXCe8jWwO2179bMc3w27d1rLqqOljoqSKmivs4mhrbm5sFeQcrzSNmGiqZF/ef1EftLd\nYDb2OvC11bqBS81qWVjL4lzwuHVOct2nVI/y5beC65EGr5SRMlwWXaRh4Y5jrFt7WcLnyutdNR0l\nRHjE7YWvAhGxdbcBHcZeC6VEHI1AJqpH18kDWPpo9kaiJz7jL1g2xGt/vuW7Y2RvJoslc98gpSC5\n7bOJy9o4rZog5eLmbJD+rMBY6liEGcXFsvWDf81/vuWPMwsggdWPj2/NWgx1kZIcLnRrhqHbr/Zd\ngiDka8sJ20jGMldSxnmtU1xJ0Okbxrm7D23st1jTNvyZqw+LU0zjkdqQcv8AFbREGvbjFO6Vjckw\nje/ZtmLOoXbrXVGGYmZwGTn9q+edjMo0sx5H8LLXDCcQk5uZ2tkmiqGyPmdO45gHX6rdw0WRDh1Z\nSGGaNkcr46id5YX2u2RxI1tv3IM+TFaeNpPXc7amFrGtu5zhqQB9FT+sU+xD8spk2my2OTr57Xtb\n6arWvwirkayaVkT5mVL5TE2QtBa4WsHDcQqzhUxpX5qOmdnmDzCZHE5QLDrn97x+yDcUlUyriL2N\ne2xLS17cpBHELFOM0olIIl2Qk2Znyfsw69rX+unBThFNUUtPI2oeSC8mNheXmNummY7+0/dYLsPr\nuZuw0Mi2Dpc23zahmbNbLbf2b0GRhtZUVmJ1ofnZDC/ZtYY7DcDe/HVZ3PKfNM0yAGAXkvplCt0N\nNJTz1j32tNNnbY9mUD+SwK7DpqmvrXEf3eWma23zvGaw/P8ABBtm1ET5tk1135A+1v3T2q4sCljq\nY6ESujaavZgCMusBYbrrPbewvvQSiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICI\niAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIghFKIIRSiCEUoghFKIIRSiAiIgIiICIiAiIgIiICIi\nAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIi\nICIiAiIgIiICIiAiIgKHHK0k3sOClY1cXc0e1gcXP6oyi5F9L/ZAirqeaKCWKTOyo/wy0E30v/Ir\nJWqoqOSnxKVgYBSM/aQ27HO0I+1if+ZbRBKIiAiIgIiICIiAiIgIiICIiAiIgIiICIoQW6ieOmgf\nNM7LGwXcbXsFTDVQzPLGOIeBmyuBabcbHsWLjTXzU0dO1j3NllaJC1pNmA3N/K33SKGSfFxWOY6O\nKKIxMDtC8kgk27BoPyg2ClQpQEREBERARFCC3UTx00D5pnZY2C7ja9gqYaqGZ5YxxDwM2VzS0242\nPYsXGmvmp4oGse5skrRIWtJswG5v5W+6RQyT4uKxzHRxRRGJgdoXkkEm3YNB+UGxRQpQEREBERAR\nEQEREBERAREQEREBERAREQQlxxWr5Q1ktLRRx0zstRVTNgjcN7b7z9gCr9NhkdNXyVMcjrPjbHs+\nzQ3v4nxKDORWamc08WdsEsxvbJEAT+SFh/qsn/ldf6Ge5Bslx3KrEMXwfEIZm1ZbhszgHOEQcYj/\nADXYA3F7WWPX0UGIUctLUszRSCxH80GtjosTmhbLDjuZj23a4U7SCFewF9fsaiLEpWyzxTFmdrbA\ntsCD+VpOSUlZhmJ1PJ+qDpY4RtIZRuDT2H/riupq5m0lJPUEaRsL3W7bBBeUrVNqJKHBhXPj2zyw\nSzG9jY77fQdiyxWDazBzCIo2NeJBrmBv2fb8oMpFRJIyON0kjg1jRcucbABYf63hf/mNL/8Amb/V\nBnJcXtcX4KgSNkhEkRa9rm3aQdD91o6Oa+HT4zVQgvaZJYyHkkNAIA+lh+UG/UrXMfJRYQanJt5h\nHtZNbZja5t/IK7T122gNS6Mspy0OY86l1/BBmIoWDLibYKmpiljIEMQlDgb5gSRYDjp+UGeoWLBW\nGeWENjOSWHa5r7t2n5/CqxCoZSYfUVEgu2KNziONggyAQRcEW4pdaPCZjTwUOHzU1mTxOIcTvO91\n29l7q9TudURV1IXOElHLljkvqOqHNP5t42QZVdWT0vXZTCSFpGd2ex1NtBbVZi1EE1ZiVJSVUTKf\nZvja8tkcdH/Ydi2xIa27iAANSglStNPj9C3EKVjMQpdi8P2n7RvYBbXzW0gqIamISwSsljO5zHXB\nQXVS8FzHNDi0kWDh2LVVGOsho3Vohc+ka/Zh4PWeb2u0dovotpE5z4mOezI5wBLb3t4IOKgxHGY+\nUb8IxHEubl2sEohaRJwW5raHHYqSSSmxgPlY0lrHQNAd4XVXKrAhjOH3isysg68L92vC6nklik+L\nYMySqjc2aMmNziNHkdoQbWhkdLQ08jzd742ucfEhXkAs2wA03Ba0YxGImmWMteajm+QG+ua1/pqP\nNBl1VQ6BoyQSTONzlZbcPqQFXTTsqqaOeO+SRocLixsViTz1UoljgpycsmQuzgXbYG48dbLKpgWU\n7GmMRZRbIDcNHYguqVp63HaKKemZHX0wzTZZRtG6Cx8tbLZU1VT1bC+mmjmYDYuY4OF/sgukgC5I\nA8VS8F7CGuLSRo4di01dVuNXWybITQUUQGW4tnIJJP0GXzK2OFxtiwymY2QyNEbbPPbpvQclBiOM\nx8o34RiOJc3LtYJRC0iTgtxXUOOxUkklNjAfKxpc1joGgO8LqvlXgQxigzRHJWQdeF+7XhdTySxS\nfFsGZJVRubNGTG5xGjyO0INrQyOloaeR5u58bXE+JCvAgjQ3QAAAAWAWmw6t5tS0MTmXbUSyMz3+\nEguP8kG6UEgbysGHE21EbZIYnOaagwm5sdP3v5/RW8Wka+GMNOrKqJrtO3MD/NBs0REBERAREQER\nEBERAREQEREBERBqcXwupr6mmmgq2QGnJcy8WfrEWvv4LJooa5gbz6qjlc3/AMKLID9bk/iyzUQW\nammZVRbOQvDb36jy0+YWJ+i0vz1P/wCw/wDqtiiCALCy1+M4n+nUzdkza1UxyQRDe939OK2C5TF+\nTOK4lixrmYxzctGWJsbSMjeF7oN1g2Gfp1M4yv2tVM7PPKf33f0HYsiodFUuloHal8Rz27AdP6+S\n5b/hTHv/AKnqPN/uW35N4HPg/OX1VY6smnLSZHXvYdmpPFBfhmbHQNoKoHnGzMWQD47C1x4H8Knm\nc9JhdJTNfJJLnjEsjNCQLX+1hb7rbWRAsCLEXCo2MX/hs9IValBg4lVNp6aSGP8A7Q+J2xZb4juH\n5IUsw9n6OMPd8Gx2R8rLMsOCINbBFU1FNHTTOaxrGbOduU5nkfKb7irTaSpo6KkpNo6UNma3NGC3\nLGLnXXwAP1W3RBit51+pPu9ppdmLNyWIdfj2qibDmzYhzpzzpCYw3svfeVmqUGthopqHCDDBPepb\nGAJXMzagaacFVWUk9dhbIJJGMmOR0lhdpsQSPobWWeiDDZShlS6tqXB0rWFjQ0aMbvIHbc2HkseC\nKSmirKjZk1FZJmbHw6oa0HhoLlbREGPh1KKGggpQcwiYG34+KyEUoMKehEmIUs7WxhkQeHC2+4Fv\n4LLyNyFoFgeCqRBoxgdQ3DqOjZVMa2jc0x3ZcPynTMPpw7dVu2ghoBNyBv4qVbnEhheIXNbIR1S4\nXAKDTYxUS4hVjBqF5aXDNVTN/wC6ZwH+Yrb01PFSU0dPAwMijaGtaOwLj2cjcZjllki5QyRumdne\nWBwzHzVTuSWOuaWu5TVBB3i7/cg66mqGVLHPiN2te5l+JBsfytbLgeeOqyzlsk9SycOtfJlc02Hp\n/Ky8Hof0zC6ejz5zE2xd8x3k+azUGDVWgip4IxfaStb8RB4k3H0JWasc0zn1jZ3yXbGDkZl3Ei17\n9vb5rIQYdXRCeWlexrAIpc7rjeLEfzWVZkbSQA1o1Ngq1CDQYfQy4hhjnTERw1spnlbbruaTo08N\nAAVvmgNaGgWA0AUqicSGF4hc1shHVLhcAoNNi9RLiFWMGoXlpcM1VM3/ALpnAf5itvTU8VJTxwQM\nDIo2hrWjsC49nI3GI5ZZIuUMkbpnZ3lgcMx+xVTuSWOuaWu5TVBB3i7/AHIOupqhlSxz4jdrXuZf\niQbH8rAOD7SlpIJZLiCYym37182n5WRg9D+mYXT0ebOYm2LvmO8nzWagwqWhFLPPM6TMJJC9rdwZ\ne1/4LGgp5K3Donl5BdOJxmuermuB5WWzliZMwskaHNPYVUAGgACwG4BBKIiAiIgIiICIiAiIgIiI\nCIiAiIgIiICIiAtXNWOZWVLmiM7BrWXc5w1OpGl/Ds7VtFbZFGyR8jGNa9+rnAau+qDDo659VKY3\niEDLfqPcT+WhVYP/APDYrkn4tSb9pWaQCCDqCqIYY4GZIY2xsH7rRYILiIiAiIgIiICIiAiIgIiI\nCIiAiIgIiIChSrU8b5Ii2OTZk/vWug1ceIyRwiQNhG1c53Xe/UXsCNDvAuprKh1ThL5HZWlsrANm\n51viHEBbSCJkELIoxZjGhoHgEmhinZkmjbI297OFwgrUqALCwUoCIiAiIgtzh7oJGxnK8tIaeBVq\ng5xzOMVhaZwLPLRYE8VkK3PG+WItjk2ZP7wF0GrjxCSOESBsI2znO6z3i4uQCNDvAuprKh1ThL5H\nFrS2RoGzc63xDiAtpBEyCFkUYsxjQ0DwCTQxTsyTRtkbe+VwuEFalQBYWClAREQEREBERARQpQER\nEBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAR\nEQEREBERAREQEREGrbjUc7YTRwS1DpYRPlbYFrDuvc79+ngruC1ElVhcM8pcXvuTmFjvKwqHB6rD\no6Z1NLC6VlM2nkzg2OW9nC31Oiyog7B8Ce6oe17oI3Pc5osCdTuQa6uqzPDWySBwiMvNoZQerHuB\nce2+Yndw7Fu6ibmlLnySTFtgGsF3OO5auiwqWTD6KCqLRFERNI1upkffNrwFzdZ+LUcldRGGKQMO\ndriDezwDctNuw7kGNJjjIY6s1FPLG+la17mXDiWk20sVUcWfnZFzGYVDml5iLm3a29gSb21WF/w/\nLlrAwUsDaiJjBHCwgMyuv996ycSwcVWINrWw007tlsnMqGXFgSQQew6lBsKOrjraVtRFfKbgg72k\nGxB8QQVhU2NNnbTyOpJooKh2VkjrWv4i+gNt6ycPpOZUDIDs7tBJ2bAxtzroAtVhNHW1OG0DKl8T\nYIiJLBpD3W3A8LfyQZjcaY7JKaeVtLJII2Tm2UkmwNr3sT2qqmxdtVNlippXRbR0W1FjYgkG4vcC\n4Oqx2YRVc1hw900XMoZGuBAOcta7M1vDeBqo/RpnYhHUP5sHslzmojaWyPbr1TbT/wBkEQYnO6qo\n4o2SyRStlLnuy36rrfj+iycOxOOWOJjzJd1Ptg+S13C9ju7Rp5q3DhVRAaR0ckRMO0a8EHVrzfTx\nVufApJcLo6UTNZJCNm94HxRnRzR9QgvtxoSCMQUksj3RCVzLtGVp3Xud5tuWbT1cVTRsqoydm5ub\nUWIWtr8EE1caqOCkmzRCMsqI7htr2IP33LPpaPm+HMpSWmzMpLGBo8bAbkGHT4k9tHTzPY+aascX\nRRMsLN3jfuAFr+Kl+OMZH/2Wcz7bYGEWzB1rjttYjtVmkpah9HROic1lVQkxObINHDcd264AIKuM\nwqcztqZpWGY1ImeGg5QA0tDQg2BmlFIJRTPMhAOyzC48L3ssBuOsyVLpKWZggc2Pe053nc0WO/UL\nMxKKqmopIqKVsMzhYPcL5R2/da6TB558M5jI2lZEwtdGGguBcDfrA7we1BffjbIY6gz08sckDA8x\n6OLmk2uCDxUjFZC9sTaCc1BaXmLM3qtvYEm9teCxm4G/ZVAEVHTmVrWtbBHYCxuSTa5WZPSVLK/n\nlG6LM6MRyMlvY2NwQR9SgtS4kHQ0ldE5zYXSiGWNw1BccuviHW/K2q0c1A5lHSYcXmSSSoE0rwLD\nR+dx8Bew+62tK+d+127WttIQywIu3sKDDfjdPG2nL2SAzVBgtb4SCRc+G7zColxQOqmthEpLTM0N\nFsshYBff46eatVOBOmqq6UTANnZ+ybb/AA5Da7v9rfyr0GEvj5jeVpNPHIJHW+NzwLnzugwaXF66\nSXCy6CSQ1FLI98bcou4FlnX7BqfNbugq211K2djHMuS0sdvaQbEeYWBh+FVFNNRPmkjdzWnfB1Ae\nsCW2P+1ZmG0jqOnfE5wcXSvfcf5nE/zQa/DsYkMMPOaeYtkmdCJzlsXZiBpe9tLXV2HFAGNjjZNU\nzSSyta3qggNcQTfdYaDyVQwuQUNNT7Rt4agTE8QHF1lhTUzsLlgm2zGS7SY5nsJjLXuzWJG47tfB\nBclxqSQ0j4KecE1T4JISG5iQ0+NrX8VkjG49iS6CUVG22GwuMxfa++9rW1usTCKSonZFUyvF21ks\n18hbnaQWggdirq8BNS+WRxhe41XOGMlZmYRkDS1w/wCuxBfkxuOKB7n00olZK2IwixcS74SNbEFZ\nU1aafDnVk8D2Bjcz47glo7dywIsFe2PRtLATURy5IY8rQ1p3X7TvW5exsjHMcLtcLEeCDDnxKOKZ\n8bY5JSyISnZi+82A+pWFX4vK2irmCGSmqYacysJLXfwURYHUR4XU0/Os08rhaQ3+Btg1p7dw1+pV\nk8n5SKoMbSU7Z6YwhkLCADfeT2oNn+oxhlYSxxNG0F/+bqh2nmrcuLhshZDTSzlkYkkykDKDuGp1\nPgrFVhda51c2mmhbHWsAcXtJLCG5dOOgVqowEuqHTMhopnSRtYecR5sjgLXHh4IMp2OROc1tLBJU\n3hbN1CAcpvawJ1Oh0WdUVUVNRvqpbtjY3MdNfJamrwSSWGOENpJmMiDG7WPKY3D95uX+CzqnDhVY\nO6glkc7NGGGQi5JHaUFoYy1geKimlgcIXTNa4tOYNGo0O/d5qIsYdK5jeZTsMsRkhzFvXtbTfode\n1Y0WBPyy3hoYHOgfEDBFbM5wtcneB4BZ/MX7Widnb/d4nMd43AH8kGswXFKh2HUpljqKqrqmbXLd\noAbYa+AudBvWW7HWFsAhpJ5ZpXPZshYOa5nxA3NlRS4TVUMNCaeSJ01PTinkDwQ14HaOGquUmEyw\nVNPPJM172ulklsLXc+27wFkFYxbM92SknfCyQRvlbYgO7dL3IB0JVqPFsgijZFUVMk00rGDqgjI7\nX7KplBWwOlhpp4mU8kxlz2OdtzdwHYbm+vilLhUkFRTyGRpEUk7yB27Q3HkgqbjLXwx5KaYzvkdF\nsdLgt33N7W8Vfw7EBXicbGSF8Emze2S172B7PqtbV07qCSKo2rWSGoe5rnMJZlcNQ627dvV/k8Jn\nNrp5yHbepLmuDS0OAa0XAOttD5IMWoxasa2ZxhkaI65kTQ3KS5pIu38/lZxxlkcc5qKeWKWEtGzN\niX5vhtY21OiofhdQ6eT9pFsnVTKhuhzC1rg+SjEcGNc+qc58dpRGWBzcwuwk6jtBugy6PEBUTyU8\nkL4ZmND8riCC09oI+isVuNQ0UNY+WKQmlc1paBcvzAEEef4TDMMNHUSzGGkhzNDQynjt9STvKVmE\n85xaCqLwImttJHb4yAQ0/bMfwgqqMXhhfI0RySFoZly267nXs0fYX+6tT4s0xSMe2anmifGHNBaT\nZzrAg7rHULGj5OuGEimmljnnbMJc8jMzXWAABH+kAKtuBv2UoDKSnL3xuDII7ABrgdTvJKC/UY42\nFk0raSeSnifs3Sty2zXsdL3tfS6sfrEtNUYiZYJpYKeUXe3LZjcrTxud5KwK/bNgqsPpZW2kqLiJ\n0Ttpq4E2O7LvObgtvUYXJLSYpCJGg1pJafl6obr5ILTsYkgq8Q28L+b07WFhGXUn79t+1bCjq3VO\ncPp5IS23xEEOB7QQsOXDqvb1ToZYQyojYLPZms5uliO0EKcJwt1BUTy5YoWShoEEF8jSL3dr2m/4\nQWzi8kFfiLaiJ4p6cMyFtiST2fUlZdNiG1qubTU8lPMWZ2teQcze2xB7Fi1mEzVFTVubLG2OcRua\nSCSx7DcfUK/T0lS/EG1lY6LNHGY2MivbUgkkn6BBYnxCphx2WnjglqIxTMkDGZRlOZ1zc8bBXf1m\nOQQilhknfLHtMoIblbu1ud99LKKijrW4pJWUkkFnwNiLJAd4Lje4/wBW5YbuTrWGB7I6WpcyIxvb\nUsuCSc2YcNSUHQKCA4WIBHAqUQQpREBERBCKUQEREBERAUKUQRZSiICIiAiIghFKICIiAiIgKFKI\nIUoiAiIgIiICIiAiIgIiICIiAiIgiyKUQEREBERAUKUQRZFKICIiAiIgIiILeZ/yt80zP+VvmilB\nGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+Vv\nmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80z\nP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/y\nt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRB\nGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+Vv\nmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80zP+VvmpRBGZ/yt80z\nP+VvmpRBRGzZxsZcnKALntVaw5MQaysdSiCd8jQ1xytFspJF738D4rJkfs43PsXZQTYbygrRayLG\n6Z+Yujnia0XLntFtwNtDvsQVd/U4m5hJFNHILWjc3rOubC1iUGci1TMXaxspqGOa4TbJjLBrj1Q7\nW5tx1vZXZMQz0kVVSlpYZmxva8a6vDTuO8X8UGwRQsV9UW4iymsQDGXfDvtbcVLekt6ZaLWR43Ty\nSBginBPFn18fA+SlmN0jmZ3CWNuQyNL2WzAb7Kaib4+tki15xaARSvfHMwxNDnMczrZT2/RUT4u2\nKFsjaaezpGsGaMi4PaE1DcbNFRG8SRteA4Ai9nCx8lYNRMMREGzj2WTOXl5vw3W/mtNMpFimoP6k\nynsQ0xOfct0dYtGhv2X4dqtxYnFJKWGOWMXc3O9oDSW7xv8ABBnItfT4xS1Di1ucHZmVt7ddo3kW\nPiN9t6iPGKeWknqWtkLYPjaMpIG++hsg2KLWVWKOgijlEIiY5+QuqXbMWtcHt0+tkbjMQghdJG7a\nStLgxpHwg2zXNtOHab7kGzRa9+L07YhLG2WaPZiQujbcAHcrhxBvO3Uwp6h0jQ0mzRYA9t7+B8UG\nYi18WL0stQ2Fpd13FrHm1nEXuBrfsPZ2KIMYp54ZZmtkEUce0LiBYt+x/Bsg2KLDgr21MEskUMt4\n+zqm/wBLGx81DK8Ckpnlr5pJ2AtbG2xdpcmxOn3KDNRa92LQjJlhneXNecrWi7cps4HXsus5jxIx\nr2m7XC4QVIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIPJ2cuMWbWGptTl\nzmhpaWnKQL27fErIk/tDxeSNzDBRDMCLhjrj/cuSRBvhytrsuUw0zm7iCHa9XL83ADyVZ5ZYk8OM\njIJJDltK4OzNsbi1nW/61XPIg3//ABdiNnXZAXl+02ha4kOtbjbd2KuXlpiklOyAiBrWuDrhrrkg\ngi+vELnUQdaz+0TGGsDTBRuIFszmOuf9yxZeWuKS1baksgD26ANzgAcLZvBc4ilnaWS/W9j5WV0b\n2uEUF2235+wk/N4lI+VdYyPZupqaVuQxjaB5sDvt1tFokUzExx8b88rsQdFKx8cDjK0Nc92fNlHZ\n8W5XX8t8TkoxTPipnNaQ4PIfmBBuNcy5tFcwzHVwf2gYtBEGCGkfb957Xkn/AHLHqOW2LVEzpTsG\nFzMhDGm1vuVziKtOj/41xXnMc4EAMbcjWhpsG6XG/wDyhQ3lniQLSY6Zwa977FrrEu3g67tSudRB\n0DOV+INifEYqZ0bmZA0td1R4Wd/G6g8sMUdFMx2xO3ADyQbm330WgRB0r+XOLPEAe2ncYXZgSw9b\n66qyeV+IWZkipoyy4aWtcbNJvl1J0/gtAiDoZ+WOITNymGnbdoYS3aDMBuv1tVdby5xZla+qDafM\n8AFmV2WwvYb/ABK5lEHRQ8s8SglzxxUoaCSGZXZQTv8A3r9vFURcsMSja8ZKdznR7POWuzAfUHf4\nm60CIOii5aYpCyUMZTB8ts0gYQdN3bb8KGcssUZBFE0QAw/4b8rszRa1t9iPqueRB0I5ZYi0tLYq\nZpax7bhrtc5u4nrb7hZUP9oOLQwsibBRkMaGguY6+n/MuURB1/SLi/dqH0P9ydIuL92ofQ/3LkEQ\ndf0i4v3ah9D/AHJ0i4v3ah9D/cuQRB1/SLi/dqH0P9ydIuL92ofQ/wBy5BEHX9IuL92ofQ/3J0i4\nv3ah9D/cuQRB1/SLi/dqH0P9ydIuL92ofQ/3LkEQdf0i4v3ah9D/AHJ0i4v3ah9D/cuQRB1/SLi/\ndqH0P9ydIuL92ofQ/wBy5BEHX9IuL92ofQ/3J0i4v3ah9D/cuQRB1/SLi/dqH0P9ydIuL92ofQ/3\nLkEQdf0i4v3ah9D/AHJ0i4v3ah9D/cuQRB1/SLi/dqH0P9ydIuL92ofQ/wBy5BEHX9IuL92ofQ/3\nJ0i4v3ah9D/cuQRB1/SLi/dqH0P9ydIuL92ofQ/3LkEQdf0i4v3ah9D/AHJ0i4v3ah9D/cuQRB1/\nSLi/dqH0P9ydIuL92ofQ/wBy5BEHX9IuL92ofQ/3J0i4v3ah9D/cuQRAREQEREBERAREQEREBERA\nREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQERE\nBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARE\nQEREBERAREQEREBERAREQEREBERB/9k=\n",
      "text/html": [
       "\n",
       "        <iframe\n",
       "            width=\"400\"\n",
       "            height=\"300\"\n",
       "            src=\"https://www.youtube.com/embed/RhsEAyDBkTQ\"\n",
       "            frameborder=\"0\"\n",
       "            allowfullscreen\n",
       "        ></iframe>\n",
       "        "
      ],
      "text/plain": [
       "<IPython.lib.display.YouTubeVideo at 0x10623e588>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "YouTubeVideo(\"RhsEAyDBkTQ\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "# In order to reproduce the exact same number we need to set the seed for random number generators:\n",
    "np.random.seed(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A normally distributed random looks as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEWCAYAAAB8LwAVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHDdJREFUeJzt3Xu8HWV97/HPF0RQQZEmxgDRoIa2QAXOiSjacw6KlxxA\no63FUG5WLFoRscULiAoVo9QLVmuxjUKJCmKKF6JgJSAWURQCckuQGiWYpCEJN7mokYRv/5hnw2Qz\n+5Kdvdasvff3/Xqt11rzzO23Zq01v3meZ2aWbBMREdHfVm0HEBERvSkJIiIiGiVBREREoySIiIho\nlAQRERGNkiAiIqJREkSXSVoi6YC242iTpNdJWiHpQUn7th3P5pJ0rqQPl9cHSFrZwXX9i6QPjNKy\nnlW2+dZl+PuS3jwayx5BLNMlWdIT2lh/f/XPNB6TBDGKJC2X9PJ+ZW+UdFXfsO09bX9/iOX01I+n\nAz4BvN329rZ/2n9kee83S9qqVvZhSed2M8hOK9+X30p6QNJ9kn4k6a319237rbZPH+ayXj7YNLZ/\nVbb5xlGI/TRJX97S5Qyy/OWS1kp6Sq3szZK+36l1xuMlQUxAPZB4ng0sGWKanYE5W7qiHnivQ3m1\n7R2otskZwHuBs0d7JWNgOzTZGjih7SA2V18NbTxIguiy+pGepP0kLZZ0v6Q1ks4sk11Znu8rTQL7\nS9pK0vsl3VGOrL4o6Wm15R5Vxt0t6QP91nOapAslfVnS/cAby7qvLkeuqyV9VtITa8uzpLdJ+nk5\nwj1d0nPLUe79khbUp+/3HhtjlbStpAepfvg3SvrFIJvqY8DfD7Rjk/Sa0lx3X2kq+eN+2/i9km4C\nHpL0hFL2bkk3SXpI0tmSpkj6Tnl/l0l6em0Z/y7pTkm/lnSlpD0HibVvnndL+lq/ss9I+vRQ89r+\nte2FwBuAoyXtVeavN2dNkvTt8p7vkfSDsq2/BDwL+Fb5vrynVgs9RtKvgO8NUDN9rqRrymd6kaSd\nyroe13TW952SNAt4H/CGsr4by/inle26WtIqVbW+vuasrSV9QtJdkn4JHDzUNgE+DrxL0o4N2/px\n70W1JjNVNfcfSvpU2V6/lPTiUr6ifC+P7rfYSZIWle/Df0p6dm3Zf1TG3SPpNkmH1sadK+lzki6R\n9BDwUkkHSVpalrVK0ruG8X57ThJEuz4NfNr2U4HnAgtK+f8tzzuWJoGrgTeWx0uB5wDbA58FkLQH\ncBZwODAVeBqwS791zQYuBHYEzgM2An8LTAL2Bw4E3tZvnlcB/xt4EfAeYB5wBDAN2As4bID31Rir\n7fW2ty/T7G37uQNvGr4O3F+WswlJuwNfAd4JTAYuodo51hPWYVQ7oR1tbyhlfw68AtgdeDXwHaod\n3WSq38I7avN/B5gBPAO4nmqbDeXLwKy+HVrZec0BvjiMeQGwfQ2wEvg/DaNPLOMmA1NK7LZ9JPAr\nqtrI9rY/Vpvn/wF/TPVZNjkKeBPV92YD8JlhxPgfwEeAr5b17V1GnVuW8TxgX+CVQF8fx18Dh5Ty\nmcDrh1oPsBj4PjDSnesLgZuAPwDOBy4AXlDiOwL4rKTta9MfDpxO9Zu4gfKZq2rmWlSW8Qyqz/Ss\n8rvr85fAXGAH4CqqWuBbSu1wL+B7I3wPrUqCGH3fLEcs90m6j2rHPZCHgedJmmT7Qds/HmTaw4Ez\nbf/S9oPAycCcshN6PfAt21fZ/j3wQaD/Tbautv1N24/Y/q3t62z/2PYG28uBf6XamdR9zPb9tpcA\ntwCXlvX/mmoHOlAH82CxDpeBDwAf0ONrKm8ALra9yPbDVH0aTwJeXJvmM7ZX2P5treyfbK+xvQr4\nAfAT2z+1/TvgG/X3Y/sc2w/YXg+cBuytWo2tMWB7NVXt7y9K0SzgLtvXbcb7BvhvYKeG8oepduTP\ntv2w7R946JupnWb7oX7boe5Ltm+x/RDV9j5UI2gikTQFOAh4Z1nfWuBTPNZMeCjwj+UzuQf46DAX\n/UHgeEmTNzcm4Hbb/1b6XL5KdWDzoXKgcinwe6pk0edi21eWz/wUYH9J06gS2/KyrA2l3+xrPPY5\nA1xk+4fl9/U7qs9qD0lPtX2v7etHEH/rkiBG32tt79j34PFH5XXHUB3N/kzStZIOGWTanYE7asN3\nAE+gOpLcGVjRN8L2b4C7+82/oj4gaffSXHGnqmanj1AdOdWtqb3+bcPw9jQbLNZhs30J1RHzWwZb\nvu1HqN5fvda0gscb1vspzSFnSPpF2TbLyzT9t0+T+VRHp5TnLw1jnv52Ae5pKP84sAy4tDSZnDSM\nZTVth4HG3wFsw/DeZ3/PLvOurh0c/SvVETf0+46y6fdjQLZvAb4NDOe99tf/88X2YN/h+m/oQarP\nYGeq9/bCfgd+hwPPbJq3+HOqhHlHaa7afwTxty4JokW2f277MKof0T8AF5bqbNNR4X9TfVH7PIuq\nOr8GWA3s2jdC0pOoqtWbrK7f8OeAnwEzShPX+wCN/N0MO9bNdQpVbE8eaPmSRHV0uKo2zZbcpvgv\nqZrkXk7VXDe9b1XDmPebwPNLH8IhDK9p6lGSXkCVIK7qP67UaE60/RzgNcDfSTqwb/QAixxqO0yr\nvX4W1ZHvXcBD1LZ5qVXUj+L7L3cFsB6YVDtAeqrtvr6b1Q3rGq5TqZqo6gcAD5Xn+veivsMeiUfj\nK01PO1F911YA/1k/8CtNa39Tm3eT7WH7WtuzqX7b3+Sx5uMxJQmiRZKOkDS5HAHfV4ofAdaV5+fU\nJv8K8LeSditf3r424A1UfQuvLp1wT6RqEhlqZ7YDVRv/g5L+CPibIabfHIPFulnKKcG3APUOxQXA\nwZIOlLQNVdv8euBHWxx5ZYeyvLupdkAf2Yx4f0f1eZwPXGP7V8OZT9JTSw3yAuDLtm9umOYQSc8r\nCfHXVP1Ij5TRa9j0+zJcR0jaQ9KTgQ8BF5Ymmf8CtpN0cNnG7we2rc23BpiuckpuaV67FPhkeS9b\nqTqpoa/ZcgHwDkm7qjoZYNg1AtvLqJqI3lErW0d1QHBEqfG9iaofb0scJOlPy2/odODHtldQ1WB2\nl3SkpG3K4wWqnRhRJ+mJkg6X9LTSBHo/j31OY0oSRLtmAUtUndnzaWBO6R/4DVWH1w9LlfZFwDlU\nzRVXArcDvwOOByh9BMdT7VxWAw8Ca6l2cgN5F9WR8gPA56l+gKNlwFhH6P3U2uRt30bVfPNPVEe7\nr6bqoP39Fqyj7otUTSCrgKXAYH1DTeYDf8Lwmpe+JekBqqPUU4Azgb8aYNoZwGVUn+/VwFm2ryjj\nPgq8v3xfNqdT90tUnct3AttRdsKln+ltwBeotsNDVM19ff69PN8tqa99/SjgiVTb7F6qRDm1jPs8\n8F3gRqpO/69vRoxQJa+n9Cv7a+DdVIl8T7b8AOF8qtrKPVQnZxwBVc2NqsN9DlWN4k6qGv+2zYsB\n4EhgeWmifCtVk9SYo6H7uGKsKUft91E1H93edjwTjaRnUTXfPdP2/W3HEzFSqUGME5JeLenJpQ/j\nE8DNPNa5Gl1Smlz+DrggySHGurF4dWU0m03VXCCq88fnDOMUyBhFJTmvoWqemtVyOBFbLE1MERHR\nKE1MERHRaEw3MU2aNMnTp09vO4yIiDHluuuuu8v2kFenj+kEMX36dBYvXtx2GBERY4qkYV3Jniam\niIholAQRERGNkiAiIqJREkRERDRKgoiIiEZJEBER0SgJIiIiGiVBREREoySIiIhoNKavpI7oBdNP\nuvjR18vPOLjFSCJGV2oQERHRKAkiIiIaJUFERESj9EFEDCL9CzGRJUFEjEA9cQxnmiSXGIvSxBQR\nEY2SICIiolESRERENEqCiIiIRumkjhim4XRMR4wnqUFERESjjtUgJG0HXAlsW9Zzoe1TJe0EfBWY\nDiwHDrV9b5nnZOAYYCPwDtvf7VR8Ed2UU15jLOpkDWI98DLbewP7ALMkvQg4Cbjc9gzg8jKMpD2A\nOcCewCzgLElbdzC+iIgYRMcShCsPlsFtysPAbGB+KZ8PvLa8ng1cYHu97duBZcB+nYovIiIG19E+\nCElbS7oBWAsssv0TYIrt1WWSO4Ep5fUuwIra7CtLWUREtKCjCcL2Rtv7ALsC+0naq994U9Uqhk3S\nsZIWS1q8bt26UYw2IiLqunIWk+37gCuo+hbWSJoKUJ7XlslWAdNqs+1ayvova57tmbZnTp48ubOB\nR0RMYJ08i2ky8LDt+yQ9CXgF8A/AQuBo4IzyfFGZZSFwvqQzgZ2BGcA1nYovohNyrUSMJ528UG4q\nML+cibQVsMD2tyVdDSyQdAxwB3AogO0lkhYAS4ENwHG2N3YwvoiIGETHEoTtm4B9G8rvBg4cYJ65\nwNxOxRQREcOXK6kjIqJREkRERDTKzfoiatLJHPGY1CAiIqJRahARPSI39ItekxpEREQ0Sg0ixp0c\niUeMjtQgIiKiURJEREQ0ShNTTEi90gyV02qjl6UGERERjVKDiAkvR/ERzZIgYsJIIojYPGliioiI\nRqlBRHRZajIxVqQGERERjZIgIiKiURJEREQ0SoKIiIhG6aSO6EG9cqV3TGypQURERKMkiIiIaJQE\nERERjTqWICRNk3SFpKWSlkg6oZSfJmmVpBvK46DaPCdLWibpNkmv6lRsERExtE52Um8ATrR9vaQd\ngOskLSrjPmX7E/WJJe0BzAH2BHYGLpO0u+2NHYwxIiIG0LEahO3Vtq8vrx8AbgV2GWSW2cAFttfb\nvh1YBuzXqfgiImJwXTnNVdJ0YF/gJ8BLgOMlHQUspqpl3EuVPH5cm20lgyeUiEfl/kYRo6/jndSS\ntge+BrzT9v3A54DnAPsAq4FPbubyjpW0WNLidevWjXq8ERFR6WiCkLQNVXI4z/bXAWyvsb3R9iPA\n53msGWkVMK02+66lbBO259meaXvm5MmTOxl+RMSE1smzmAScDdxq+8xa+dTaZK8DbimvFwJzJG0r\naTdgBnBNp+KLiIjBdbIP4iXAkcDNkm4oZe8DDpO0D2BgOfAWANtLJC0AllKdAXVczmCKiGhPxxKE\n7asANYy6ZJB55gJzOxVTxFiU+zJFW3IldURENEqCiIiIRkkQERHRKAkiIiIa5Q+DYszK1dMRnZUa\nRERENEqCiIiIRmliinEtzVARI5caRERENEqCiIiIRmliihhDctuN6KbUICIiolESRERENEqCiIiI\nRkkQERHRKAkiIiIa5SymGFNy4VtE96QGERERjZIgIiKiURJEREQ0SoKIiIhGSRAREdEoCSIiIhp1\nLEFImibpCklLJS2RdEIp30nSIkk/L89Pr81zsqRlkm6T9KpOxRYxHkw/6eJHHxGd0MnrIDYAJ9q+\nXtIOwHWSFgFvBC63fYakk4CTgPdK2gOYA+wJ7AxcJml32xs7GGPEuJC7vEYndKwGYXu17evL6weA\nW4FdgNnA/DLZfOC15fVs4ALb623fDiwD9utUfBERMbiu9EFImg7sC/wEmGJ7dRl1JzClvN4FWFGb\nbWUp67+sYyUtlrR43bp1HYs5ImKi63iCkLQ98DXgnbbvr4+zbcCbszzb82zPtD1z8uTJoxhpRETU\ndTRBSNqGKjmcZ/vrpXiNpKll/FRgbSlfBUyrzb5rKYuIiBZ08iwmAWcDt9o+szZqIXB0eX00cFGt\nfI6kbSXtBswArulUfBERMbhOnsX0EuBI4GZJN5Sy9wFnAAskHQPcARwKYHuJpAXAUqozoI7LGUwR\nEe3pWIKwfRWgAUYfOMA8c4G5nYopIiKGL1dSR0REoySIiIholAQRERGN8pej0TNyu4iI3pIaRERE\nNEqCiIiIRkkQERHRKAkiIiIapZM6YpxJZ3+MltQgIiKiUWoQERNEahaxuZIgoidlZxbRviGbmCQd\nL+np3QgmIiJ6x3D6IKYA10paIGlW+Z+HiIgY54ZsYrL9fkkfAF4J/BXw2fK/DWfb/kWnA4yoNzdF\nRPcMqw/CtiXdCdxJ9Wc+TwculLTI9ns6GWBEjFySa2yJIROEpBOAo4C7gC8A77b9sKStgJ8DSRAR\nEePQcGoQOwF/ZvuOeqHtRyQd0pmwIiKibcPpgzh1kHG3jm44ERHRK3IldURENEqCiIiIRkkQERHR\nKAkiIiIadSxBSDpH0lpJt9TKTpO0StIN5XFQbdzJkpZJuk3SqzoVV0REDE8naxDnArMayj9le5/y\nuARA0h7AHGDPMs9ZkrbuYGwRETGEjiUI21cC9wxz8tnABbbX274dWAbs16nYIiJiaG30QRwv6abS\nBNV3l9hdgBW1aVaWsseRdKykxZIWr1u3rtOxRkRMWN3+P4jPAacDLs+fBN60OQuwPQ+YBzBz5kyP\ndoDRXblXUETv6moNwvYa2xttPwJ8nseakVYB02qT7lrKIiKiJV1NEJKm1gZfB/Sd4bQQmCNpW0m7\nATOAa7oZW0REbKpjTUySvgIcAEyStBI4FThA0j5UTUzLgbcA2F5S/mNiKdXtxI+zvbFTsUVExNA6\nliBsH9ZQfPYg088F5nYqnoiI2Dy5kjoiIholQURERKMkiIiIaNTt6yAiogfUrz9ZfsbBLUYSvSwJ\nIroiF8RFjD1pYoqIiEZJEBER0SgJIiIiGiVBREREoySIiIholAQRERGNkiAiIqJREkRERDTKhXIR\nE1yuqo6BpAYRERGNUoOILZYj0IjxKTWIiIholAQRERGN0sQUHZM7uEaMbalBREREoySIiIholAQR\nERGNkiAiIqJRxzqpJZ0DHAKstb1XKdsJ+CowHVgOHGr73jLuZOAYYCPwDtvf7VRs0TnpmB7bck1L\n1HWyBnEuMKtf2UnA5bZnAJeXYSTtAcwB9izznCVp6w7GFhFbYPpJFz/6iPGrYwnC9pXAPf2KZwPz\ny+v5wGtr5RfYXm/7dmAZsF+nYouIiKF1uw9iiu3V5fWdwJTyehdgRW26laXscSQdK2mxpMXr1q3r\nXKQRERNca53Utg14BPPNsz3T9szJkyd3ILKIiIDuJ4g1kqYClOe1pXwVMK023a6lLCIiWtLtW20s\nBI4GzijPF9XKz5d0JrAzMAO4psuxRURNzmiKTp7m+hXgAGCSpJXAqVSJYYGkY4A7gEMBbC+RtABY\nCmwAjrO9sVOxRUTE0DqWIGwfNsCoAweYfi4wt1PxRMTI5XTWiSlXUkdERKMkiIiIaJQEERERjZIg\nIiKiURJEREQ0SoKIiIhGSRAREdEoCSIiIholQURERKNu34spIsax3L9pfEkNIiIiGqUGERFbJPdp\nGr9Sg4iIiEZJEBER0SgJIiIiGqUPIkYk7c4R419qEBER0Sg1iIjoiFwTMfalBhEREY1Sg4jHyZFf\nREASRAwhySJi4koTU0RENEqCiIiIRq00MUlaDjwAbAQ22J4paSfgq8B0YDlwqO1724gvmuXah4iJ\npc0axEtt72N7Zhk+Cbjc9gzg8jIcEREt6aUmptnA/PJ6PvDaFmOJiJjw2koQBi6TdJ2kY0vZFNur\ny+s7gSlNM0o6VtJiSYvXrVvXjVgjIiaktk5z/VPbqyQ9A1gk6Wf1kbYtyU0z2p4HzAOYOXNm4zQR\nMTbkNOre1kqCsL2qPK+V9A1gP2CNpKm2V0uaCqxtI7aIGH1JBGNT1xOEpKcAW9l+oLx+JfAhYCFw\nNHBGeb6o27FNZDlDKbol37Wxo40axBTgG5L61n++7f+QdC2wQNIxwB3AoS3EFhERRdcThO1fAns3\nlN8NHNjteCIiolnuxTRBpZofEUPppesgIiKih6QGMYGk1hARmyMJYpxLUoiIkUqCiIiekGslek/6\nICIiolESRERENEqCiIiIRkkQERHRKAkiIiIa5SymiOg5OaOpNyRBjEO59iEiRkOamCIiolESRERE\nNEoT0ziRZqUYr9If0Z7UICIiolFqEGNYag0x0aQ20V1JEBExJiVZdF4SRA/JFz5iZPLb6YwkiB6V\n5qOIaFsSRMuSCCKiVyVBRMS4MtBBV73pKU1Sw5PTXCMiopFstx3DJiTNAj4NbA18wfYZA007c+ZM\nL168uGuxjZY0K0X0poFqE+OtxiHpOtszh5qup5qYJG0N/DPwCmAlcK2khbaXthvZ4w30hRlvX6SI\nmLh6qgYhaX/gNNuvKsMnA9j+aNP0W1qD2NydeY78I2I0be7B5WgdgA63BtFrCeL1wCzbby7DRwIv\ntP322jTHAseWwT8EbgMmAXd1OdzN0cvx9XJs0Nvx9XJskPi2RC/HBlse37NtTx5qop5qYhoO2/OA\nefUySYuHkw3b0svx9XJs0Nvx9XJskPi2RC/HBt2Lr9fOYloFTKsN71rKIiKiy3otQVwLzJC0m6Qn\nAnOAhS3HFBExIfVUE5PtDZLeDnyX6jTXc2wvGcas84aepFW9HF8vxwa9HV8vxwaJb0v0cmzQpfh6\nqpM6IiJ6R681MUVERI9IgoiIiEbjLkFIOlGSJU1qO5Y+kk6XdJOkGyRdKmnntmOqk/RxST8rMX5D\n0o5tx1Qn6S8kLZH0iKSeOPVQ0ixJt0laJumktuOpk3SOpLWSbmk7lv4kTZN0haSl5TM9oe2Y6iRt\nJ+kaSTeW+P6+7Zj6k7S1pJ9K+nan1zWuEoSkacArgV+1HUs/H7f9fNv7AN8GPth2QP0sAvay/Xzg\nv4CTW46nv1uAPwOubDsQ2OSWMP8f2AM4TNIe7Ua1iXOBWW0HMYANwIm29wBeBBzXY9tuPfAy23sD\n+wCzJL2o5Zj6OwG4tRsrGlcJAvgU8B6gp3rebd9fG3wKvRffpbY3lMEfU11/0jNs32r7trbjqNkP\nWGb7l7Z/D1wAzG45pkfZvhK4p+04mthebfv68voBqh3dLu1G9RhXHiyD25RHz/xeJe0KHAx8oRvr\nGzcJQtJsYJXtG9uOpYmkuZJWAIfTezWIujcB32k7iB63C7CiNrySHtrJjRWSpgP7Aj9pN5JNlSac\nG4C1wCLbvRTfP1IdBD/SjZX11HUQQ5F0GfDMhlGnAO+jal5qxWCx2b7I9inAKeUGhG8HTu2l+Mo0\np1A1AZzXzdjKuoeML8YPSdsDXwPe2a+G3TrbG4F9Sl/cNyTtZbv1/hxJhwBrbV8n6YBurHNMJQjb\nL28ql/QnwG7AjZKgaiK5XtJ+tu9sM7YG5wGX0OUEMVR8kt4IHAIc6BYujtmM7dcLckuYLSBpG6rk\ncJ7tr7cdz0Bs3yfpCqr+nNYTBPAS4DWSDgK2A54q6cu2j+jUCsdFE5Ptm20/w/Z029Opqvz/q1vJ\nYSiSZtQGZwM/ayuWJuVPmt4DvMb2b9qOZwzILWFGSNUR3NnArbbPbDue/iRN7juLT9KTqP6bpid+\nr7ZPtr1r2cfNAb7XyeQA4yRBjAFnSLpF0k1UzWA9dWof8FlgB2BRORX3X9oOqE7S6yStBPYHLpb0\n3TbjKR36fbeEuRVYMMxbwnSFpK8AVwN/KGmlpGPajqnmJcCRwMvKd+2GckTcK6YCV5Tf6rVUfRAd\nP520V+VWGxER0Sg1iIiIaJQEERERjZIgIiKiURJEREQ0SoKIiIhGSRAREdEoCSIiIholQUSMIkkv\nKP+rsZ2kp5T/FNir7bgiRiIXykWMMkkfprpXzpOAlbY/2nJIESOSBBExysr9ma4Ffge8uNwdNGLM\nSRNTxOj7A2B7qvtbbddyLBEjlhpExCiTtJDqX+Z2A6bafnvLIUWMyJj6P4iIXifpKOBh2+eX/67+\nkaSX2f5e27FFbK7UICIiolH6ICIiolESRERENEqCiIiIRkkQERHRKAkiIiIaJUFERESjJIiIiGj0\nP/2iPwVJbRr6AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7ada40ff60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "e = np.random.randn(10000,1)\n",
    "plt.hist(e,100) #histogram with 100 bins\n",
    "plt.ylabel('y')\n",
    "plt.xlabel('x')\n",
    "plt.title('Histogram of Normally Distributed Numbers')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Generate observations $y$ given feature (design) matrix $X$ according to:\n",
    "$$\n",
    "y = Xw + \\xi\\\\\n",
    "\\xi_i \\sim \\mathcal{N}(0,\\sigma^2)\n",
    "$$\n",
    "\n",
    "In this particular case, $w$ is a 100 dimensional vector where 90% of the numbers are zero. i.e. only 10 of the numbers are non-zero."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Generate the data\n",
    "N = 40 # Number of observations\n",
    "D = 100 # Dimensionality\n",
    "\n",
    "x = np.random.randn(N,D) # get random observations of x\n",
    "w_true = np.zeros((D,1)) # create a weight vector of zeros\n",
    "idx = np.random.choice(100,10,replace=False) # randomly choose 10 of those weights\n",
    "w_true[idx] = np.random.randn(10,1) # populate then with 10 random weights\n",
    "\n",
    "e = np.random.randn(N,1) # have a noise vector\n",
    "y = np.matmul(x,w_true) + e # generate observations\n",
    "\n",
    "# create validation set:\n",
    "N_test = 50\n",
    "x_test = np.random.randn(50,D)\n",
    "y_test_true = np.matmul(x_test,w_true)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nCSHiaJWLN8lJVqCFw2E1+OcRIQTl5eWoeItCceaRFwGQUn58nOd/iJYmmhfU4J9f1PupUJyZqEpg\nhUIxtSQTsOVXkIhP9ZWccSgBmARms5kVK1akfu69N9uSrBpPPfUUu3fvTj2+6667eOGFF074GgYG\nBvjRj3404dd985vf5D/+4z9O+PwKRd5o2wjPfBkOrRt/X0VeUUtCTgKn08m2bdty2vepp55i7dq1\nLF68GIBvfWvcDhg5YQjA3/zN3+TleArFlBHxa7+jgam9jjMQZQHkkTvuuIPFixezfPlybrvtNt54\n4w2eeeYZvv71r7NixQqam5u5+eabeeKJJwCt1cWdd97JihUraGpqYsuWLVx11VU0Njby4IMPAuD3\n+7n88stZuXIly5Yt4+mnn06dq7m5mRUrVvD1r38dgO985zusWrWK5cuXc/fdd6eu65577mHBggVc\ndNFF7Nu3r8DvikIxDvGQ9jumUrsLzSltAfzr799h99H8tkBfXFfE3deOWagMQCgUYsWKFanHd955\nJ1dccQVPPvkke/fuRQjBwMAAJSUlXHfddaxdu5Ybbrgh67FmzZrFtm3b+Pu//3tuvvlm1q9fTzgc\nZunSpdx66604HA6efPJJioqK6OnpYc2aNVx33XXce++97Nq1K2WJPP/88+zfv58NGzYgpeS6665j\n3bp1uN1uHn30UbZt20Y8HmflypWce+65+XvDFIoTxRj4DSFQFIxTWgCmimwuoHg8jsPh4HOf+xxr\n165l7drc+t5dd911ACxbtgy/34/X68Xr9WK32xkYGMDtdvNP//RPrFu3DpPJRHt7O52dnaOO8/zz\nz/P8889zzjnnAJrlsH//fnw+Hx/60IdwuVwZ51Mopg3KApgyTmkBGG+mXkgsFgsbNmzgxRdf5Ikn\nnuCHP/whL7300rivs9vtAJhMptTfxuN4PM4jjzxCd3c3mzdvxmq1MmfOnKxV0FJK7rzzTr74xS9m\nbP/P//zPE/zPFIqTTMwQgODUXscZiIoB5Am/38/g4CDvf//7+d73vsf27dsB8Hq9+Hy+SR93cHCQ\nqqoqrFYrL7/8MocPH8563Kuuuoqf/exn+P1aQK29vZ2uri4uueQSnnrqKUKhED6fj9///vcn8F8q\nFCcBQwDiygIoNKe0BTBVjIwBXH311Xzta1/j+uuvJxwOI6Xku9/9LgA33XQTt9xyC/fff38q+DsR\n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\n943eTaEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7adae5d940>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = LinearRegression()\n",
    "model.fit(x,y)\n",
    "\n",
    "# plot the true vs estimated coeffiecients\n",
    "plt.plot(np.arange(100),np.squeeze(model.coef_))\n",
    "plt.plot(np.arange(100),w_true)\n",
    "plt.legend([\"Estimated\",\"True\"])\n",
    "plt.title('Estimated Weights')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "One way of testing how good your model is to look at metrics. In the case of regression Mean Squared Error (MSE) is a common metric which is defined as:\n",
    "$$ \\frac{1}{N}\\sum_{i=1}^N \\xi_i^2$$ where, $\\xi_i = y_i-f(x_i|w,b)$. Furthermore it is best to look at the MSE on a validation set, rather than on the training dataset that we used to train the model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.79499954951\n"
     ]
    }
   ],
   "source": [
    "y_est = model.predict(x_test)\n",
    "mse = np.mean(np.square(y_test_true-y_est))\n",
    "print(mse)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ridge regression is where you penalise the weights by setting the $\\alpha$ parameter right at the top. It penalises it so that the higher **the square of the weights** the higher the loss."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7ada4adc50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import Ridge\n",
    "\n",
    "model = Ridge(alpha=5.0,fit_intercept = False)\n",
    "model.fit(x,y)\n",
    "\n",
    "# plot the true vs estimated coeffiecients\n",
    "plt.plot(np.arange(100),np.squeeze(model.coef_))\n",
    "plt.plot(np.arange(100),w_true)\n",
    "plt.legend([\"Estimated\",\"True\"])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This model is slightly better than without any penalty on the weights."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6.42288072501\n"
     ]
    }
   ],
   "source": [
    "y_est = model.predict(x_test)\n",
    "mse = np.mean(np.square(y_test_true-y_est))\n",
    "print(mse)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Lasso is a model that encourages weights to go to zero exactly, as opposed to Ridge regression which encourages small weights."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nj/Db3/6We++9l49+9KOcccYZbN++neuvv5677roLsFNd3HTTTZxxxhl0d3fz+OOPc9lll3Hcccdx\n2223ATA8PMwll1zCWWedxbp16/jRj36Uf9b27ds544wz+OhHPwrA5z73Oc455xxOO+00br45v0Ik\nn/70pznxxBO58MILee6552r8rijKUUi7Wa5Tmtpda5raAvjkj7fwzJ7Bo184BdYsncPNr5t0oDIA\nsViMM844I79/0003cemll3L33Xfz7LPPIiL09/fT2dnJVVddxfr163nTm95U8l4rV67kySef5MMf\n/jDXX389jzzyCPF4nLVr1/Ke97yHUCjE3XffzZw5czh06BDnnXceV111FZ/5zGfYvHlz3hK5//77\nef7559mwYQPGGK666ioefvhhotEod955J08++STpdJqzzjqLs88+u3pvmKJUSq7hT+tyB7WmqQWg\nXpRyAaXTaUKhEH/5l3/J+vXrWb++vHnvrrrqKgDWrVvH8PAw7e3ttLe3EwwG6e/vJxqN8nd/93c8\n/PDDeDwedu/ezf79+yfc5/777+f+++/nzDPPBKzl8PzzzzM0NMQb3vAGIpHImOcpSsOgFkDdaGoB\nOFpPvZb4fD42bNjAgw8+yF133cWtt97Kf/3Xfx31dcGgXcPa4/Hkt3P76XSa733vexw8eJBNmzbh\n9/tZtWpVyVHQxhhuuukm3v3ud485/sUvfrHCminKDJPKCcBofcvRgmgMoEoMDw8zMDDAlVdeyT//\n8z/z1FNPAdDe3s7Q0NC07zswMMDChQvx+/386le/4qWXXip538suu4w77riD4WEbUNu9ezcHDhzg\nla98Jffccw+xWIyhoSF+/OMfV1BLRZkBcgKQVgug1jS1BVAvxscALr/8cj70oQ9x9dVXE4/HMcbw\nhS98AYBrr72Wd73rXXzpS1/KB3+nwlve8hZe97rXsW7dOrq7uzn55JMB6Orq4oILLmDt2rVcccUV\nfO5zn2Pr1q28/OUvB6CtrY3vfve7nHXWWVxzzTWcfvrpLFy4kHPOOacK74CiVJFcw5/SGECtaeg1\ngbu7u834BWG2bt3KKaecUqcSzV70fVXqxi9vhke+CC97D1zx2XqXpukRkU3GmO5yrlUXkKIo9SVv\nAWgMoNaoACiKUl9yDb9mAdUcFQBFUeqLjgOoGyoAiqLUlUzSWgDphApArVEBUBSlrgy6dOah4emn\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7add897630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import Lasso\n",
    "\n",
    "model = Lasso(alpha=0.1,fit_intercept = False)\n",
    "model.fit(x,y)\n",
    "\n",
    "# plot the true vs estimated coeffiecients\n",
    "plt.plot(np.arange(100),np.squeeze(model.coef_))\n",
    "plt.plot(np.arange(100),w_true)\n",
    "plt.legend([\"Estimated\",\"True\"])\n",
    "plt.title('Lasso regression weight inference')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The MSE is significantly better than both the above models."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.30600134084\n"
     ]
    }
   ],
   "source": [
    "y_est = model.predict(x_test)[:,None]\n",
    "mse = np.mean(np.square(y_test_true-y_est))\n",
    "print(mse)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Automated Relevance Determination (ARD) regression is similar to lasso in that it encourages zero weights. However, the advantage is that you do not need to set a penalisation parameter, $\\alpha$, $\\beta$ in this model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/root/miniconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:526: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f7ada9b0550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import ARDRegression\n",
    "\n",
    "model = ARDRegression(fit_intercept = False)\n",
    "model.fit(x,y)\n",
    "\n",
    "# plot the true vs estimated coeffiecients\n",
    "plt.plot(np.arange(100),np.squeeze(model.coef_))\n",
    "plt.plot(np.arange(100),w_true)\n",
    "plt.legend([\"Estimated\",\"True\"])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.87016741296\n"
     ]
    }
   ],
   "source": [
    "y_est = model.predict(x_test)[:,None]\n",
    "mse = np.mean(np.square(y_test_true-y_est))\n",
    "print(mse)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Note:\n",
    "Rerun the above with setting N=400\n",
    "\n",
    "## Inverse Problems\n",
    "The following section is optional and you may skip it. It is not necessary for understanding Deep Learning.\n",
    "\n",
    "Inverse problems are where given the outputs you are required to infer the inputs. A typical example is X-rays. Given the x-ray sensor readings, the algorithm needs to build an image of an individuals bone structure.\n",
    "\n",
    "See [here](http://scikit-learn.org/stable/auto_examples/applications/plot_tomography_l1_reconstruction.html#sphx-glr-auto-examples-applications-plot-tomography-l1-reconstruction-py) for an example of l1 reguralisation applied to a compressed sensing problem (has a resemblance to the x-ray problem). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  },
  "latex_envs": {
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 0
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
